export class TypeUtils {
    /**
     * 检查是否为数字类型（适用于字符串）
     */
    static isNumber(str: string | null | undefined): boolean {
        if (str == null || str === undefined || str.toString().trim() === '') {
            return false;
        }
        return !isNaN(Number(str));
    }

    /**
     * 检查是否为整数
     */
    static isInteger(str: string | null | undefined): boolean {
        if (!str || str.trim() === '') {
            return false;
        }
        return Number.isInteger(Number(str));
    }

    /**
     * 检查是否为布尔值
     */
    static isBoolean(str: string | null | undefined): boolean {
        return str === 'true' || str === 'false' || str?.toLowerCase() === 'true' || str?.toLowerCase() === 'false';
    }

    /**
     * 检查是否为字符串类型
     */
    static isString(obj: unknown): boolean {
        return typeof obj === 'string';
    }

    /**
     * 检查是否为空白字符串
     */
    static isBlank(str: string | null | undefined): boolean {
        return str === null || str === undefined || str.trim() === '';
    }

    static isArray(value: any): value is Array<any> {
        return Array.isArray(value);
    }
}
